#ifndef __UTIL_PRINT_H__
#define __UTIL_PRINT_H__

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>

#define SHOW_DEFAULT 0
#define SHOW_HIGHLIGHT 1
#define SHOW_NOBOLD 22
#define SHOW_UNDERLINE 4
#define SHOW_NOUNDERLINE 24
#define SHOW_BLINK 5
#define SHOW_NOBLINK 25
#define SHOW_INVERT 7
#define SHOW_NOINVERT 27

#define CLR_BLACK 30
#define CLR_RED 31
#define CLR_GREEN 32
#define CLR_YELLOW 33
#define CLR_BLUE 34
#define CLR_MAGENTA 35
#define CLR_CYAN 36
#define CLR_WHITE 37

#define CLR_BK_BLACK 40
#define CLR_BK_RED 41
#define CLR_BK_GREEN 42
#define CLR_BK_YELLOW 43
#define CLR_BK_BLUE 44
#define CLR_BK_MAGENTA 45
#define CLR_BK_CYAN 46
#define CLR_BK_WHITE 47

#define CLR_HEADER "\033[%d;%d;%dm"
#define CLR_TAIL "\033[0m"
#define COLOR_STR "%s%s%s"

void print_hex(const unsigned char *data, int len);

#endif /* __UTIL_PRINT_H__ */
